/*
 *@autor Eu
 */
package br.com.fatecpg.zanotti.acessobanco;

import br.com.fatecpg.zanotti.modelo.Pedido;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * Classe responsável por realizar toda a Manipulação de Dados referente a tabela Pedido do Banco de Dados.
 * @author F.L. Zanotti
 */
public class dmlPedido {

    public static String getSequenciaCDVenda() {
        return seq;
    }
    private static String seq = "";

    /**
     * Método responsável pela rotina de INSERT no banco de dados
     * @param Pedido Objeto Pedido
     * @return boolean
     */
    public static boolean cadastrar(Pedido Pedido) {

        try {
            Connection con = AbreConexao.getConexao();

            String query = "INSERT INTO PEDIDO(CDVENDA, CLI_CDLOJA, " +
                    "CDCLIENTE, CDCARGO, FUN_CDLOJA, CDFUNCIONARIO, " +
                    "CDNOTAFISCAL, DTVENDA, DTPGTO, DTENTREGA, ICENTREGUE, " +
                    "ALT_ENDERECO)" +
                    "VALUES(seq_cdvenda.NEXTVAL, ?, ?, ?, ?, ?, seq_cdvenda.NEXTVAL, TO_CHAR(sysdate, 'DD/MM/YY'), ?, ?,?,?) ";


            PreparedStatement pst = con.prepareStatement(query);

            pst.setInt(1, Integer.parseInt(Pedido.getCLI_CDLOJA().toString()));
            pst.setString(2, (Pedido.getCPFCLIENTE()));
            pst.setInt(3, Integer.parseInt(Pedido.getCDCARGO().toString()));
            pst.setInt(4, Integer.parseInt(Pedido.getFUN_CDLOJA().toString()));
            pst.setInt(5, Integer.parseInt(Pedido.getCDFUNCIONARIO().toString()));
            pst.setString(6, Pedido.getDTPGTO());
            pst.setString(7, Pedido.getDTENTREGA());
            pst.setString(8, Pedido.getICENTREGUE());
            pst.setString(9, Pedido.getALT_ENDERECO());

            pst.execute();
            con.commit();


            query = "Select seq_cdvenda.CURRVAL from PEDIDO ";


            pst = con.prepareStatement(query);
            ResultSet rs = pst.executeQuery();

            while (rs.next()) {
                seq = rs.getString(1);
            }

            con.close();
            pst.close();
            javax.swing.JOptionPane.showMessageDialog(null, "Cadastro de Pedido realizado com sucesso");
            return true;

        } catch (SQLException e) {
            javax.swing.JOptionPane.showMessageDialog(null, e);
            return false;
        }
    }

    /**
     * Método responsável pela rotina de DELETE no banco de dados
     * @param cd Código da Venda
     * @return boolean
     */
    public static boolean deletar(String cd) {


        try {
            Connection con = AbreConexao.getConexao();

            String query = "DELETE FROM Pedido " +
                    "WHERE CDVENDA = ?";

            PreparedStatement pst = con.prepareStatement(query);

            pst.setString(1, cd);

            pst.execute();
            con.commit();
            con.close();
            pst.close();
            javax.swing.JOptionPane.showMessageDialog(null, "O pedido foi apagado com sucesso");
            return true;
        } catch (SQLException e) {
            javax.swing.JOptionPane.showMessageDialog(null, e);
            return false;
        }
    }

    /**
     * Método responsável pela rotina de UPDATE no banco de dados
     * @param Pedido Objeto Pedido
     * @return boolean
     */
    public static boolean atualizar(Pedido Pedido) {
        try {
            Connection con = AbreConexao.getConexao();

            String query = "UPDATE Pedido SET " +
                    "CLI_CDLOJA = ?, " +
                    "CDCLIENTE = ?, " +
                    "DTPGTO = ?, " +
                    "DTENTREGA = ?, " +
                    "ICENTREGUE = ?, " +
                    "ALT_ENDERECO = ? " +
                    "WHERE CDVENDA = ?";



            PreparedStatement pst = con.prepareStatement(query);

            pst.setString(1, Pedido.getCLI_CDLOJA());
            pst.setString(2, Pedido.getCPFCLIENTE());
            pst.setString(3, Pedido.getDTPGTO());
            pst.setString(4, Pedido.getDTENTREGA());
            pst.setString(5, Pedido.getICENTREGUE());
            pst.setString(6, Pedido.getALT_ENDERECO());
            pst.setString(7, Pedido.getCDVENDA());

            pst.execute();
            con.commit();
            con.close();
            pst.close();
            javax.swing.JOptionPane.showMessageDialog(null, "Atualização realizada com sucesso");
            return true;
        } catch (SQLException e) {
            javax.swing.JOptionPane.showMessageDialog(null, e);
            return false;
        }
    }
}
